Stateful integration of a vehicle information system user interface with mobile device operations

ABSTRACT

A method, device, and vehicle information system are provided for persisting application context from the vehicle information system to the mobile device. The mobile device provides access to at least one application executing on the mobile device to the vehicle information system. On termination of that access, an operating context is determined for each of the mobile device applications where possible. In some cases, where application context is persisted from one system or device to the other, the current data is presented in accordance with a transport modality associated with the other device or system.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Application No.61/792,323 filed on 15 Mar. 2013, the entirety of which is incorporatedherein by reference.

TECHNICAL FIELD

The present disclosure relates to integration of mobile deviceoperations with a vehicle information system and display.

TECHNICAL BACKGROUND

Vehicles commonly include a number of electronics systems and subsystemsfor operation of the vehicle and for driver and passenger convenience,including entertainment, informational and environmental systemsincluding audio, climate control, voice command, navigation, and enginemonitoring systems. Control over and/or monitoring of the varioussystems can be provided via the user interfaces of an in-vehicleinformation system. The user interface can include one or more outputssuch as display panels and speakers, and one or more input devices(e.g., dials, buttons, and the like), a microphone for receiving voicecommands, and/or a touchscreen display for receiving input touchcommands. The in-vehicle system is typically integrated in the vehicle'sdashboard within easy reach of the driver.

In-vehicle information systems can be connected with portable userdevices, such as mobile phones and the like, via wired or wirelessconnections in order to expand the functionality of the in-vehicleinformation system. For example, the mobile phone can be used to place atelephone call, and audio data from the phone can be streamed to thein-vehicle information system's speakers; using the speakers and amicrophone, the driver may participate in a telephone conversationhands-free. As another example, audio data on a portable user devicesuch as a mobile phone, MP3 player or other entertainment device can bestreamed to the in-vehicle information system and played back over thevehicle's speakers.

BRIEF DESCRIPTION OF THE DRAWINGS

In drawings which illustrate by way of example only embodiments of thepresent disclosure, in which like reference numerals describe similaritems throughout the various figures,

FIG. 1 is a block diagram of an example of a mobile device.

FIG. 2 is a block diagram of select components of an example in-vehicleinformation system and further select components of the mobile device ofFIG. 1.

FIG. 3 is a diagram of a portion of a vehicle instrument panel with anembedded display panel.

FIG. 4 is a schematic diagram of an example user interface view for thein-vehicle information system of FIG. 2.

FIGS. 5A to 5C are schematic diagrams of further example user interfaceviews for the in-vehicle information system of FIG. 2 while connected tothe mobile device of FIG. 1.

FIGS. 6A to 6E are schematic diagrams of example user interface viewsthat can be displayed by the in-vehicle information system in responseto a determined state of the mobile device.

FIG. 7 is a flowchart illustrating a method for applying applicationcontext from the mobile device to the user interface of the in-vehicleinformation system.

FIG. 8 is a flowchart illustrating a further method for applyingapplication context from the mobile device to the user interface of thein-vehicle information system.

FIG. 9 is a schematic diagram of an application user interface element.

FIGS. 10 and 11 are schematic diagrams illustrating a transfer of userinterface context from a map/navigation application on the mobile deviceto the in-vehicle information system.

FIGS. 12 to 14 are schematic diagrams illustrating a transfer of userinterface context from a media player application on the mobile deviceto the in-vehicle information system.

FIGS. 15 to 17 are schematic diagrams illustrating a transfer of userinterface context from a calendar application on the mobile device tothe in-vehicle information system.

FIG. 18 is a flowchart illustrating a method of propagating applicationcontext between the mobile device and the in-vehicle information system.

FIG. 19 is a flowchart illustrating a method of restoring applicationcontext to the mobile device after termination of communication betweenthe mobile device and the in-vehicle information system.

DETAILED DESCRIPTION OF THE INVENTION

In-vehicle information systems can be connected with portable userdevices (generally referred to herein as “mobile devices”) to extend thefunctionality of the mobile device to the driver or other occupants ofthe vehicle (the user). The user may then access functions and data onthe mobile device using the input/output (I/O) systems provided for thein-vehicle system, which can provide for effectively “hands free” use ofthe mobile device. A common example is the aforementioned provision oftelephony services by a mobile phone: voice data is received by themobile phone over a wireless network, and streamed to the in-vehicleinformation system for presentation using the vehicle's audio system; avehicle microphone can pick up the driver's responses and transmit datato the mobile phone for encoding and transmission back over the wirelessnetwork. Another common example is the streaming of audio data (e.g.music, podcasts, audiobooks, and the like) from a mobile device forplayback over the vehicle's speakers. Yet another example is the use ofa map/navigation application executing on the mobile device, which candownload map and navigation data over the wireless network, thentransmit the map data and turn-by-turn navigation instructions to thein-vehicle information system for output via a display and/or speakers.

In such implementations, a fixed or wireless connection is typicallyestablished between the mobile device and the in-vehicle informationsystem when the user of the mobile device brings the device intoproximity with the vehicle; i.e., close enough so that the fixed orwireless contact can be made. Once the connection is made, a session isestablished between the mobile device and the in-vehicle informationsystem to enable data exchange. For example, programs provided for thein-vehicle information system can be launched to access the device data.The user can then access data on the mobile device and interact withmobile device functions using the vehicle's I/O systems.

In the case of a mobile device that the user frequently carries on hisperson—for instance, a smartphone, tablet computer, or a personalentertainment device such as a MP3 player—a connection may therefore beestablished every time the user enters the vehicle with the device, andbroken when the user leaves the vehicle with the device. However, thehandoff between the mobile device and the in-vehicle information systemis not seamless from a user operation perspective. The establishment ofthe connection with the in-vehicle information system may interrupt acurrently executing function or application on the mobile device. Inaddition, once the connection is established, the user must engage withthe vehicle's user interface to locate and activate the desiredapplications in order to access the mobile device data. Consider thesituation where the mobile device is playing a music file at the timethe connection with the in-vehicle information system is initiated; as aresult of connection, music playback may be automatically halted, andapplications executing on the mobile device may be terminated. Once theconnection is established, to continue playback the user must thenlocate and launch the appropriate media player in the in-vehicleinformation system; the in-vehicle information system must retrievemedia track listings from the mobile device; and then the user mustselect the appropriate track to recommence playback of the desired file.

Moreover, the operating system of the mobile device may limit the numberof active screens (views, or graphical user interface displays) for agiven application executing on the device: only a single applicationscreen object may be configured to be in focus (i.e., capable ofreceiving user input events) at any given time, and other screen objectsfor the application, while they may be retained in memory, cannot beconcurrently active and able to receive input events. This limitation,or other factors such as limited hardware resources on the device, mayprevent the application from generating concurrent views that can berendered and capable of receiving input concurrently on both thedevice's own display and via a vehicular display. Put another way, theexecution environment on the mobile device may prevent a currentlyexecuting application from presenting a split “personality” across boththe mobile device display and the vehicular display.

In short, while the user was operating the mobile device prior toconnection with the in-vehicle information system, he was operating themobile device in a specific operating context—activating specific viewsof different applications, selecting specific files for display orplayback—but that context is lost due to the transition from the mobiledevice to the in-vehicle information system. The user must navigate adifferent user interface in the vehicle to establish a similar contextwithin the in-vehicle information system. It is desirable to provide aneffective means for the user to access specific applications andspecific data of interest easily once the transition to the in-vehicleinformation system has been completed, which would reduce theconsumption of processing resources for both the in-vehicle informationsystem and the mobile device, and reduce the amount of time andattention a user must dedicate to operating the in-vehicle informationsystem.

Accordingly, the embodiments and examples described herein provide asystem, apparatus and methods for integrating mobile device operationswith an in-vehicle information system in a manner that enables thecontext of various mobile device applications to be persisted from themobile device to the in-vehicle information system, and vice versa.

These embodiments are described and illustrated primarily, on the onehand, in relation to mobile devices, and in relation to in-vehicleinformation systems on the other hand. Mobile devices include devicessuch as smartphones, tablet computers, and any other suitable portableuser device as will be understood by those skilled in the art from thefollowing description. It will be appreciated by those skilled in theart, however, that this description is not intended to limit the scopeof the described embodiments to implementation on mobile or portabledevices, or on smartphones or tablets in particular. For example, themethods and systems described herein may be applied to any appropriatecommunication device or data processing device, whether or not thedevice is adapted to communicate over a fixed or wireless connection,and whether or not provided with voice communication capabilities. Thedevice may be additionally or alternatively adapted to process data andcarry out operations on data in response to user commands for any numberof purposes, including productivity and entertainment. Therefore, theexamples described herein may be implemented in whole or in part onelectronic devices including without limitation cellular phones,smartphones, wireless organizers, personal digital assistants, laptops,tablets, e-book readers, handheld wireless communication devices,notebook computers, portable gaming devices, portable devices equippedwith location-based services, entertainment devices such as mediaplayers, and the like.

In the primary examples described herein, the mobile device includes anintegrated touchscreen display; however, it will be readily understoodby those skilled in the art that a touchscreen display is not necessary.In some cases, the electronic device may have an integrated display thatis not touchscreen-enabled. In other cases, the electronic device(whether it possesses an integrated display or not) may be configured tooutput data to be painted to an external display unit such as anexternal monitor or panel, tablet, television screen, projector, orvirtual retinal display (via a data port or transmitter, such as aBluetooth® transceiver, USB port, HDMI port, DVI port, and the like).For such devices, references herein to a “display,” “display screen” or“display interface” are intended to encompass both integrated andexternal display units unless otherwise indicated.

FIG. 1 is a block diagram of an example of a mobile device 100 that maybe used with the embodiments described herein. It should be understoodthat components described in FIG. 1 can be optional and that a mobiledevice used with various embodiments described herein may include oromit components described in relation to FIG. 1. The mobile device 100includes a number of components such as a main processor 102 thatcontrols the device's overall operation. Additional processors orcomponents can be included for functions not explicitly detailed herein,such as power management and conversion, encoding and decoding of audioand other data, and the like. Those skilled in the part will appreciatethat such components, if present, are not illustrated here to simplifyexposition.

The mobile device 100 may be a battery-powered device, having a batteryinterface 132 for receiving one or more batteries 130. Alternatively oradditionally, the mobile device 100 may be provided with an externalpower supply (e.g., mains power, using a suitable adapter as necessary).If configured for communication functions, such as data or voicecommunications, one or more communication subsystems 104 a . . . n incommunication with the processor are included. Data received by themobile device 100 can be received via one of these subsystems anddecompressed and/or decrypted as necessary using techniques andcomponents known to persons of skill in the art. The communicationsubsystems 104 a . . . n typically include a receiver, transmitter, andassociated components such as one or more embedded or internal antennaelements, local oscillators, and a digital signal processor incommunication with the transmitter and receiver, and may optionallyinclude software components typically provided as part of the deviceoperating system.

The particular design of the communication subsystems 104 a . . . n isdependent upon the communication network with which the subsystem isintended to operate. One or more of the communication subsystems 104 a .. . n may be configured in accordance with one or more wirelesscommunications standards for communication over wireless networks,typically operated by a wireless carrier and offering voice and/or dataconnectivity. Such wireless networks may be capable of supportingcircuit switched and/or packet switched communications. New wirelesscommunications standards are still being defined, but it is believedthat they will have similarities to the network behaviour contemplatedherein, and it will also be understood by persons skilled in the artthat the embodiments described herein are intended to use any othersuitable standards that are developed in the future. The wireless linkillustrated in FIG. 1 can represent one or more different RadioFrequency (RF) channels, operating according to defined protocolsspecified for an appropriate wireless communications standard.

The communication subsystems 104 a . . . n can include subsystems forother wireless communications, such as a wireless LAN (WLAN)communication subsystem. The WLAN communication subsystem may operate inaccordance with a known network protocol such as one or more of the802.11™ family of standards developed or maintained by IEEE. Variouscommunications subsystems 104 a . . . n can provide for communicationbetween the mobile device 100 and different systems or devices withoutthe use of the aforementioned wireless network, over varying distancesthat may be less than the distance over which the communicationsubsystem 104 a can communicate with the wireless network. Thesubsystems 104 a . . . n can include, in addition to one or more RFantennas and transceivers, an infrared device and associated circuitsand/or other components for short-range or near-field communication.

It should be understood that integration of any of the communicationsubsystems 104 a . . . n within the device chassis itself is optional.One or more of the communication subsystem may be provided by a dongleor other peripheral device (not shown) connected to the mobile device100, either wirelessly or by a fixed connection (for example, by a USBport) to provide the mobile device 100 with wireless communicationcapabilities. If provided onboard the mobile device 100, thecommunication subsystems 104 a . . . n may be separate from, orintegrated with, each other as appropriate.

The main processor 102 also interacts with additional subsystems (ifpresent), the general configuration and implementation of which will beknown to those skilled in the art, such as a Random Access Memory (RAM)106, a flash memory 108, a display interface 103 and optionally adisplay 110, other data and memory access interfaces such as avisualization (graphics) processor 125, auxiliary input/output systems112, one or more data ports 114, a keyboard 116, speaker 118, microphone120, haptics module 122 (e.g., a driver and a vibratory component, suchas a motor), global positioning system (GPS) or other location trackingmodule 123, orientation and/or inertial navigation system (INS) module124, one or more cameras, indicated at 126 a and 126 b and othersubsystems 128. In some cases, zero, one or more of each of thesevarious subsystems may be provided, and some subsystem functions may beprovided by software, hardware, or a combination of both. For example, aphysical keyboard 116 may not be provided integrated with the device100; instead a virtual keyboard may be implemented for those devices 100bearing touchscreens, using software components executing at the device.Additional display interfaces 103 or displays 110 may be provided, aswell as additional dedicated processors besides the visualizationprocessor 125 to execute computations that would otherwise be executedby the host processor 102. Additional memory or storage modules, notshown in FIG. 1, may also be provided for storing data, which cancontain flash memory modules as well. Examples include removablenon-volatile memory cards in appropriate formats and form factors. Suchstorage modules may communicate with the mobile device 100 using a fixedor wireless connection.

A visualization (graphics) processor or module 125 may be included inthe mobile device 100. The visualization module 125 analyzes andprocesses data for presentation via the display interface 103 anddisplay 110. Data originally prepared for visualization on alarge-screen display may require additional processing prior tovisualization on a small-screen display. This additional processing maybe accomplished by the visualization module 125. As will be appreciatedby those of skill in the art, the visualization module can beimplemented in hardware, software, or a combination thereof, and caninclude a dedicated image processor and associated circuitry, or can beimplemented within main processor 102. Rendered data for painting to thedisplay is provided to the display 110 (whether the display 110 isexternal to the device 100, or integrated) via the display interface103.

Content that is rendered for display may be obtained from a documentsuch as a message, word processor document, webpage, or similar file,which is either obtained from memory at the device such as flash memory108 or RAM 106, or obtained over a network connection. A suitableapplication, such as a messaging application, viewer application, orbrowser application, or other suitable application, can process andrender the document for display in accordance with any formatting orstylistic directives included with the document. FIG. 1 illustratespossible components of the device 100, such as the operating system 140and programs 150, which can include zero, one or more applications suchas those depicted. Other software components 186 besides thoseexplicitly illustrated in FIG. 1 can also be included, as is well knownto those skilled in the art. Some possible components are discussed inrelation to FIG. 2 below. Programs 150 may be installed on the device100 during its manufacture or together with loading of the operatingsystem 140, or at a subsequent time once the device 100 is delivered tothe user. These software applications may be supplied by the devicemanufacturer or operating system provider, or may be third partyapplications. The additional applications can be loaded onto the device100 through at least one of the communications subsystems 104 a . . . n,the data port 114, or any other suitable device subsystem 128.

Example applications include messaging applications such as email 152,instant messaging (IM) 154, and Short Message Service (SMS 156). Otherapplications for messaging can be included as well, and multipleapplications for each type of message format may be loaded onto thedevice 100. Other applications include social networking applications158; calendar applications 160; task applications 162; browserapplications 164; map/navigation applications 168, which may receiveinput location data from the GPS or other location technology subsystem123, and retrieve, based on the location data, map and navigation data;media applications 170, which can include separate components forplayback, recording and/or editing of audio files 172 (includingplaylists), photographs 174, and video files 176; contact applications178; virtual machines 180, which when executing provide discrete runtimeenvironments for other code on the device 100; “app store” applications182 for accessing vendor sites offering software applications fordownload (and optionally for purchase) to the device 100; and direct orpeer-to-peer file sharing or synchronization applications 184 formanaging transfer of files between the device 100 and other devices.Applications may store data in the device's file system; however, adedicated data store or data structure may be defined for eachapplication.

If the mobile device 100 is adapted for multitasking, then more than oneapplication may be launched and executed without a previously launchedapplication being terminated, and consequently more than one applicationUI screen may be maintained in memory, and processes for more than oneapplication may be executed by the processor 102. How multitasking isaccomplished by the mobile device 100 varies according to the device'soperating system and the device's processing and memory capabilities.Techniques for implementing multitasking and sharing resources amongapplications in mobile computing environments will be known to thoseskilled in the art. “Multitasking” applications have been described inmobile device contexts as including “true” multitasking, in whichapplications can execute unrestricted in the background, while anotherapplication or function is executing in the foreground; limitedmultitasking in which applications may register one or more threads withlimited functionality and allocated resources to run in the background,while one application executing in the foreground is given priority inallocated resources over the applications running in the background; andsimulated multitasking, in which execution of applications is suspendedwhen their corresponding UI screen is not currently being displayed, butcurrent state information for each application is maintained in memoryfor at least some period of time so that the application can resume inits current state when execution is resumed. Generally, when anapplication is executing in the foreground, a UI screen for thatapplication is currently displayed on the device display 110, and thatUI screen and application is considered to be in focus.

In some examples, the mobile device 100 may be a touchscreen-baseddevice, in which the display 110 includes a touchscreen interface thatprovides both a display for visual presentation of data and graphicaluser interfaces, and an input subsystem for detecting user input via agraphical user interface presented on the display 110 that may beconverted to instructions for execution by the device 100. Intouchscreen embodiments, the display controller 113 and/or the processor102 may detect a touch by any suitable contact member on thetouch-sensitive display interface 110 (references to the “display 110”herein include a touchscreen display, for those electronic devicesimplemented with touchscreen interfaces). The construction andconfiguration of the touchscreen display and display controller fordetecting touches will be known to those skilled in the art. Optionally,haptic or tactile feedback can be provided by the haptics module 122 inresponse to detected touches received through the touchscreen display,either through the housing of the device 100, or through the touchscreenitself.

The touchscreen sensors may be capable of detecting and supportingsingle-touch, multi-touch, or both single and multi-touch actions suchas tap, double-tap, tap and hold, tap and drag, scroll, press, flick andpinch. Touches that are capable of being detected may be made by variouscontact objects, such as thumbs, fingers, appendages, styli, pens,pointers and the like, although the selection of the appropriate contactobject and its construction will depend on the type of touchscreenimplemented on the device. The touchscreen display 110 detects thesesingle and multi-touch actions, for example through the generation of asignal or signals in response to a detected contact, which may then beprocessed by the processor 102 or by an additional processor orprocessors in the device 100 to determine attributes of the touch event,such as the location of the touch action, whether defined by horizontaland vertical screen position data or other position data. The detectedtouch actions may then be correlated both to user commands and to anelement or elements displayed on the screen or view presented by thedisplay 110. In response to the user command, the processor may takeactions with respect to the identified element or elements.

A display 110 that is a touchscreen may be the principal user interfaceprovided on the mobile device 100, in which case other user inputmechanisms such as the keyboard 116 may not be present, although in someexamples, a keyboard 116 and/or additional buttons, a trackpad or otheruser interface mechanisms may still be provided. References to the“display 110” herein include a touchscreen display, for those mobiledevices implemented with such a touch interface.

Generally, user interface (UI) mechanisms may be implemented at themobile device 100 as hardware, software, or a combination of bothhardware and software. Graphical user interfaces (GUIs), mentionedabove, are implemented using the display interface 103 and display 100and corresponding software executed at the device. Touch UIs areimplemented using a touch sensing mechanism, such as the aforementionedtrackpad and/or touchscreen interface, along with appropriate softwareused to convert touch information to signals or instructions. A voice orspeech UI can be implemented using the microphone 120, together withmodules implemented in hardware or software operable to detect speechpatterns or other sounds, and to decode or correlate detected sounds touser commands. Other possible UI mechanisms that may be provided includea tracking (e.g., eye-tracking or facial tracking) UI or perceptual UIimplemented using the camera 126 a and/or 126 b, again with appropriatehardware and/or software modules to analyze received visual data todetect the presence or position of a user's face or eyes, which are usedto derive commands or contextual information to control deviceoperations; and a kinetic UI implemented using the device'sorientation/INS module 124, or using the GPS module 123 or anotherlocating technology module, together with appropriate software and/orhardware modules to detect the motion or position of the electronicdevice 100, again to derive commands or contextual information tocontrol the device. Generally, the implementation of touch, voice,tracking/perceptual, and kinetic UIs will be understood by those skilledin the art.

The orientation/INS module 124 can include one or more motion or tiltsensors capable of detecting gravity- or motion-induced forces todetermine physical conditions of the device such as acceleration andangular velocity, which in turn can be used to determine the orientationor geometric attitude of the mobile device 100, or changes thereto, intwo or three dimensions. Motion sensors can include an accelerometer fordetection of linear motion, and a gyroscope for detection of rotationalmotion. The selection and implementation of suitable motion sensors willbe understood by those skilled in the art.

FIG. 2 is a block diagram illustrating select components of an examplein-vehicle information system 200 for a vehicle (not shown) that may beused with the embodiments described herein. Again, it should beunderstood that components described in FIG. 2 can be optional and thatan in-vehicle information system used with the various embodimentsdescribed herein may include or omit components described in relation toFIG. 2. Further, those skilled in the art will appreciate that othercomponents may be included for functions not explicitly detailed herein,such as a power supply, environmental and engine sensors and controls,and the like. Such components are not illustrated to simplifyexposition. The vehicle contemplated in these examples is a motor orroad vehicle, since current models of such vehicles typically offer thetype of in-vehicle information system that can be integrated with amobile device 100 as described herein; however, it will be understood bythose skilled in the art that the examples herein need not be limited tosuch types of vehicles, and can be extended to include off-road andother vehicles.

The in-vehicle information system 200 can include at least one processor202 for controlling the in-vehicle information system's overalloperation. Again, additional processors, not shown, can be included forperforming functions which may or may not be described herein. Theprocessor 202 interacts with various subsystems and components, thegeneral configuration and implementation of which will be known to thoseskilled in the art. Non-volatile memory 203 may be used to store theoperating system (not shown) and various programs 220 for execution bythe processor 202. Temporary data may be stored in the volatile memory204. Data processed by the processor 202 may be rendered (optionally byan additional graphics processor, not shown) for display via the displayinterface 205 for output to a display panel 206. The display panel 206may comprise any suitable flat panel display technology, such as aliquid crystal display, and may be integrated into the vehicle interior,such as in the vehicle dashboard. In some examples, such as thosedescribed herein, the display panel 206 may comprise a touchscreendisplay, similar to that described for the mobile device 100, above.References to the “display panel 206” thus include touchscreenembodiments, but are not necessarily limited to touchscreen embodiments.In some cases the specifications and capabilities of the display panel206 and the user interface views displayed by the display panel 206 maybe limited or mandated by safety regulations or concerns, and thoseskilled in the art will understand how to modify the various examplesdescribed herein to comply with applicable legal requirements. Forinstance, it may desirable to rely on single-touch user inputs on avehicular touchscreen, since multi-touch and gesture inputs may requiretoo much of the driver's attention to implement. Accordingly, it may notbe necessary to provide a multi-touch capable display screen for thedisplay panel 206.

The in-vehicle information system 200 is also provided with at least onecommunication subsystem 207 a . . . n, which, like the communicationsubsystems 104 a . . . n of the mobile device 100, can includesubsystems for wireless communication over various distances, inaccordance with one or more suitable protocols. In FIG. 2 a possibleconnection is shown to a wireless network represented by cloud 275. Insome embodiments, the in-vehicle information system 200 may not beprovisioned for communication over a wireless network like the mobiledevice; instead, an external device, not shown, may be connected withthe in-vehicle information system 200 to provide this functionality. Theexternal device may in some embodiments a dongle, as mentioned above, ormay be the mobile device 100 itself. In the examples described herein,the in-vehicle information system 200 includes at least onecommunication subsystem suitable for communicating wirelessly with themobile device 100 at least over a short distance. Suitable protocols caninclude one or more of the 802.11 standards or Bluetooth, but otherprotocols providing the necessary bandwidth and transmission speeds forthe examples described herein may be used. As noted above, the mobiledevice 100 may be connected to the in-vehicle information system 200over a fixed link. The in-vehicle information system 200 can thereforeinclude one or more data ports in addition to, or in place of, thecommunication subsystems 207 a . . . n.

Other components of the in-vehicle information system 200 can include aGPS system 208, speakers 209, microphone 210, other vehicle I/O systems211 (which can include the aforementioned data ports), and othersubsystems 212 generally. The in-vehicle information system 200 can alsobe provisioned with an operating system, as mentioned above, along withone or more programs or functions 220 such as a map/navigation program221; a vehicle status program 222 for monitoring various environmentalor operating conditions of the vehicle; a configuration program 223 foruser configuration of system options; a radio program 224; media player225; phone application 226; weather application 227, and otherproductivity, entertainment, or informational programs 228. In addition,in some examples described herein, the in-vehicle information system 200is provided with a link program or component 230 which operates toprovide integration with the mobile device 100. In addition, thein-vehicle information system 200 can include a UI manager component 240for managing one or more “views”, or screens, on the display panel 206.A “view”, generally, comprises a graphical user interface (also referredto herein as a “screen”; e.g., an application UI view) that is presentedto the user via a device or system display. The UI manager receives datafor application UI screens or views to be displayed from one or moreprograms executing in the in-vehicle information system 200 or from theoperating system, and provides data for a current view to be displayedto the display interface 205 for output to the display panel 206. Thus,the UI manager may receive application UI data and view data from thelink program 230 while the link program 230 is executing. In addition,the in-vehicle information system 200 can include a security managercomponent 244 for implementing access control (e.g., passwordprotection) over some or all of the functions of the in-vehicleinformation system 200.

One or more of the programs or functions mentioned above may beintegrated into the operating system rather than provided as astandalone application. For instance, one or more of the UI manager 240,security manager 244, and link program 230 may be integrated into theoperating system. In some examples, the link program 230 itself may beintegrated into the operating system of the in-vehicle informationsystem 200.

FIG. 2 also shows the in-vehicle information system 200 in communicationwith the mobile device 100 via a particular communication subsystem 104i, and select components of the mobile device 100. Like the in-vehicleinformation system 200, the mobile device 100 can include a counterpartlink component 260 for managing sessions with the in-vehicle informationsystem 200. The mobile device 100 may also include a UI managercomponent 252; a state module 256 for determining and persisting stateinformation obtained for applications on the mobile device 100; and asecurity manager 258. The UI manager component 252 and security managercomponent 254 may provide similar functions to those described abovewith respect to the in-vehicle information system 200, and again, one ormore of these components, as well as the link component 260, may beintegrated into the device operating system 140. While the securitymanager component 258 may generally provide access control for themobile device 100 (e.g., management of a device password for accessingdata and functions on the device), it may also be configured todifferentiate between sensitive data and non-sensitive stored on themobile device 100. For instance, data stored on the device 100 may beassociated with one or more categories of data. In one implementation,data and optionally applications may be assigned to either a “personal”category or a “work” category, where “work” data is considered to besensitive or confidential (e.g. business-related data), and “personal”data is not. The security manager 258 associates a “work” user profileto sensitive data and optionally applications, and a “personal” userprofile to other data and optionally applications, such that sensitivedata can only be accessed while the “work” user profile is invoked onthe mobile device 100. Invocation of a particular profile may involveselection of one or the other profile, and/or successful input ofcredentials associated with that profile. Sensitive data is thusrestricted for use within a security perimeter defined by the “work”user profile, in that the data may only be accessed by permittedapplications while that profile is in use. Similarly, “personal” datacan also be restricted to its own perimeter defined by the “personal”user profile.

The state module 256 tracks and logs the state of applications executingon the mobile device 100, and in particular the state of specificapplications that are executed in connection with the link component 260and integrated with the in-vehicle information system 200. The statemodule 256 can detect and log status information for an application,including the application's current operating context, which can includethe current operating state of an application (e.g., the level ofpriority the application has, whether it is executing in the foregroundor background, etc.; the number of associated threads or processes) andthe status of data and resource access by the application (e.g., whatfiles it is currently accessing; whether it is currently streaming dataor receiving data over a network; what application UI views arecurrently associated with the application, and which view was the lastdisplayed for the application). In some examples, the state module 256may listen for notifications issued by the operating system 140 and/orthe application concerning changes in the application state. Some stateinformation concerning application UI views may be maintained by the UImanager 252 instead.

The display panel 206 of the in-vehicle information system 200 can beintegrated into the interior of the vehicle, for instance, mounted inthe vehicle dashboard, within reach of the driver seat of the vehicle.FIG. 3 illustrates an example display panel 206 that is integrated intothe vehicle interior in a vehicle instrument panel 300. The displaypanel 206 displays, in this example, a default UI view 310 for thein-vehicle information system 200. Here, a number of application UIelements (in these examples, icons) 311 to 316 representing variousvehicle applications are displayed. The instrument panel 300 can includea number of physical input mechanisms such as buttons 330 which may beprogrammatically associated with specific applications or vehiclefunctions (e.g. radio station presets, media player, volume control,track selection, and so on). Other input mechanisms may be provided foronscreen navigation, such as rotary control 322 and forward/back buttons326, 324. These physical mechanisms are optional in the case where thedisplay panel 206 is a touchscreen display. In the case where the rotarycontrol 322 or forward/back buttons 326, 324 are used to select UIelements displayed on screen, navigation among the UI elements isessentially linear, whereas the UI elements may be arrayed in atwo-dimensional layout; accordingly, in the various examples describedherein, a navigation order may be assigned to the various elements toensure that each element is selectable using the rotary control orbuttons. Techniques for adapting user interfaces for navigation by theinput mechanisms mentioned herein will be known to those skilled in theart. In the various examples described below, the display panel 206 is atouchscreen display unless otherwise indicated; however, it should beunderstood that these examples are not necessarily limited totouchscreen implementations.

In other examples, the display panel 206 or even an ancillary displaypanel (not shown in the figures) may be provided for passenger use, andcould therefore be mounted elsewhere in the interior, such as on thepassenger side of the dashboard or in a seatback or headrest. Stillfurther, the display panel 206 may not be integrated into the vehicleinterior at all, but may be provided as an external unit to be mountedon the vehicle interior. In that case, the display interface 205 shownin FIG. 2 is integrated into the in-vehicle information system 200, andcommunicates over an appropriate fixed or wireless with the displaypanel 206. As with the mobile device 100, references to the “displaypanel” or “display” of the in-vehicle information system 200 encompassboth integrated and external display units unless otherwise indicated.

As indicated above with reference to FIG. 2, the in-vehicle informationsystem 200 includes a link program 230. FIG. 4 depicts an alternatedefault view 400 for the in-vehicle information system 200, in which oneof the icons 410 comprises an icon for the link program 230. Actuationof the icon 410, for example by a touch (in the case of a touch screen)or selection using a physical input mechanism, launches the link program230. The link program 230 may initiate a wireless connection with themobile device 100, although in some implementations, the connection isalready established before the link program 230 is launched. Forexample, when the mobile device 100 is initially brought withinproximity of the in-vehicle information system 200, a wireless pairingor connection may be manually established between the device 100 and thesystem 200. Depending on the configuration of the device 100 and system200, subsequent pairings or connections may be automatically establishedwhenever the device 100 and system 200 are in close enough proximity.

The link program 230 then establishes a link or session with the mobiledevice 100 for the transfer of application and context data between themobile device 100 and the in-vehicle information system 200, and maydirectly manage the display of user interface screens on the displaypanel 206, optionally in conjunction with the user interface manager240. In these examples, the link between the mobile device 100 and thein-vehicle information system 200 provides for the integration of selectmobile device applications and functions with the in-vehicle informationsystem's I/O systems. The select applications and functions can includeone or more of a telephone function and optionally a contactsapplication 178; a map/navigation application 168; a media playerapplication 170; and a calendar application 160. Other applications orfunctions of the mobile device 100 may be included in the integration;however, the aforementioned applications are selected for descriptionherein because they relate to communication, travel, and entertainmentactivities that the user may engage in while travelling by vehicle.

At the time the session with the in-vehicle information system 200 isestablished, one or more of these applications may already be executingon the mobile device 100, whether in the foreground or in a lowerpriority background state. On the other hand, some or all of theseapplications may not be executing at the time the session starts. Thelink component 260 can invoke any of the specified applications that arenot currently executing to ensure they are available to process anyrequests that are received via the vehicle UI and directed to the mobiledevice 100. Once the session is established, however, the applicationsmay no longer be accessible to the user on the mobile device 100 for theduration of the session. For example, the device 100 may enter a lockedstate to prevent the user from accessing the applications directly onthe device 100, although an option may be provided to the user on themobile device 100 to terminate the session and/or sever the link withthe in-vehicle information system 200.

Turning to FIG. 5A, when the link between the mobile device 100 and thein-vehicle information system 200 is established, a landing view,“launch me”, or “homescreen” UI view may be displayed on the displaypanel 206. The example view in FIG. 5A is a default homescreen view,comprising a default configuration of application UI elements and otherUI elements. The homescreen view provides UI access in the vehicle tothe select applications or functions of the mobile device 100. Thehomescreen view may be generated by the link component 260 andtransmitted via the connection to the in-vehicle information system 200(e.g., to the link program 230) for display. Similarly,application-specific UI views for the various applications executing onthe mobile device 100 may be generated by the link component 260 basedon context data and associated application data obtained from eachcorresponding application, and sent to the system 200 for display.Otherwise, application-specific UI views suitable for in-vehicle displayare generated by each application and provided to the link component260. In either of these variations, the in-vehicle information system200 effectively “mirrors” the UI views generated at the mobile device100, although the UI views that are provided by the device 100 may infact vary from the UI views that are generated at the device 100 fordisplay via the device's own display screen no. In these variations,each application thus presents an alternative “personality” or viewaccording to which hardware component—either the display of the device100, or the vehicular display—is displaying the application view thatwill be in focus and capable of receiving user input. Alternatively, thelink component 260 provides sufficient application context informationand associated data for each of the selected applications to the linkprogram 230 to generate the various application UI elements describedbelow. The UI views are then generated by the link program 230 executingin the in-vehicle information system 200. Either alternative may beemployed in the examples described herein. In any case, however,contextual information and other application data necessary forgeneration of the various UI views are provided by the mobile device100. This data can include data for invoking or requesting certainapplication UI views or application functions that may be relevant tothe view (e.g. pre-formatted request strings, application entry pointidentifiers, etc.) and file metadata relating to the current operatingcontext of the application (e.g., file, event or location identifier;track name, artist, cover art graphics, etc. for a media file; startingand end times, participants, location/call number, subject, etc. for acalendar event; street address, location name, etc. for a destination).

Given the difference in display form factor and possibly in displaycapabilities between the mobile device 100 and the system 200, thehomescreen and application UI views as they may be displayed on themobile device 100 do not necessarily translate directly to the displaypanel 206, and indeed, it may not be desirable for a homescreen orapplication UI view to appear on the display panel 206 exactly as itappears on the display 110 of the mobile device 100. As mentioned above,there may be regulatory constraints on the operation of the displaypanel 206. There may also be regulatory constraints on the contentdisplayed, such as minimum text size or restrictions on animations orvideo. Accordingly, the views displayed on the display panel 206 for theselect applications and functions will likely differ from the viewsnormally displayed on the mobile device 100 for the same applicationsand functions.

As explained in further detail below, display of the homescreen view isdependent on context information provided by the mobile device 100concerning the various applications represented in the homescreen view.If context information is available, then homescreen may be modifiedfrom the default view 500 a, such that UI elements included in the vieware adapted to reflect the context information. Also, depending on theavailable context data, upon the link being established between themobile device 100 and the system 200, the homescreen view 500 a can bebypassed in favor of a particular application UI view. In a case whereno context information is available, the default view 500 a isdisplayed.

The default homescreen view 500 a illustrated in FIG. 5A includes UIfeatures that may be present in all homescreen views regardless of thecontext information provided by the mobile device 100. The defaulthomescreen view 500 a can also include UI features that are responsiveto the context information obtained from the device 100. The dock region510 a, for instance, may be persisted across all variants of thehomescreen view. The dock region 510 a includes UI elements 512, 514,516, 518 representing application entry points for various in-vehicleinformation system 200 or mobile device 100 functions that are commonlyused, such as a back/close action 512 for exiting the link application230 (and terminating the session) and returning to the default view forthe in-vehicle information system 200; a voice control application 514,which when activated enables the user to issue voice commands to thein-vehicle information system 200; phone function 516, which may makeuse of either the mobile device 100's phone function, or an on-boardphone function provided on the in-vehicle information system 200; and ahome button 518 for returning to a designated landing screen (which maybe the homescreen 500 a). In some examples, the dock may provide accessto other types of applications for which direct access is desired fromany screen displayed on the vehicle display panel 206. Other functionsthat would be suitably represented by UI elements in the dock region 510a will be known to those in the art.

The default homescreen 500 a also includes an application UI elementregion 520 a, comprising application UI elements associated withapplication entry points for the select applications mentioned above,such as a map/navigation UI element 522, media player UI element 524,and calendar UI element 526. In the default homescreen view 500 a whereno context is provided by the mobile device 100, the application UIelements 522, 524, 526 are presented in a default state, and actuatingone of these default state application UI elements 522, 524, 526 invokesa default fullscreen view of the respective application.

As is conventional in the art, these various UI elements are icons,i.e., elements frequently of a pictorial nature, optionally displayedwith accompanying text. Each of the UI elements is associated with anentry point for a corresponding application or function. Actuation of aUI element displayed on the display panel 206, such as an application UIelement 522 (e.g., by “tapping” on the element when displayed on atouchscreen, or otherwise invoking a user interface event associatedwith the element using another user input mechanism), results ininvocation of the corresponding application or function, andpresentation of a UI view for that application on the display panel 206.The UI view that is presented depends on the entry point identified bythe UI element. Actuation of the element may also be variously referredto as activating the UI element; “clicking” or “tapping” the UI element(which refers to generic user input actions that are commonly used toselect a UI element for actuation); invoking the UI element; or invokingor launching the UI element's corresponding application or function viathe displayed view. In these examples, when the UI views that aredisplayed by the in-vehicle information system 200 are provided by themobile device 100, actuation of UI elements at the system 200 aredetected by the link program 230, and interpreted as requests forapplication views and/or data from the mobile device 100. The linkprogram 230 accordingly issues a corresponding request to the mobiledevice 100 over the wireless connection. The mobile device 100 generatesthe requested UI view data in accordance with the examples describedherein, and transmits the generated data to the link program 230 inresponse. If the UI views that are displayed by the system 200 aregenerated by the link program 230 at the system 200, then the mobiledevice 100 transmits sufficient UI and context data for the link program230 to be able to generate the required UI views in accordance with theexamples described herein.

All homescreen views can include zero, one or more status indicators 532to 538 when a triggering event occurs. Status display region 530 in FIG.5A illustrates three possible status indicators each reflecting a statusof the mobile device 100, such as a battery level indicator 532,visually indicating a level of charge remaining on the mobile device 100battery; a wireless network carrier indicator 534, indicating whetherthe mobile device 100 is currently roaming, and the carrier to which itis currently connected; and a wireless network signal strength indicator536. In FIG. 5A, all three indicators are shown at once for illustrationpurposes, and in some examples these indicators may always be displayedon the homescreen view; however, to minimize clutter in the view and toreduce the amount of distracting information displayed to the user,these indicators are only displayed on a “need to know” basis, such aswhen a triggering event occurs at the mobile device 100. Thus, thebattery indicator 532 is displayed only in response to a detection thatthe remaining battery charge has dropped below a predeterminedthreshold. The wireless network carrier indicator 534 may be displayedonly in response to detection that the mobile device 100 has exited itshome location and is now roaming. The signal strength indicator 536, aswell, may only be displayed when the detected signal strength dropsbelow a predetermined threshold. These indicators 532, 534, 536 maypersist on the homescreen view 500 a (and other homescreen views) solong as the triggering condition persists, and so long as the mobiledevice 100 remains connected to the in-vehicle information system 200.The triggering events and status indicators here indicate sensor oroperational conditions of the mobile device 100, rather than of thevehicle or in-vehicle information system 200. Other status indicatorsthat may be suitable for the status region 530 will be known to thoseskilled in the art.

Other indicators may be displayed in the status region 530 or elsewherein the view. An example is the buffering indicator 538, which indicatesthat the in-vehicle information system 200 is engaged in loading data(e.g., media files or map data) from the mobile device 100. Thebuffering indicator 538 would be displayed only when buffering is takingplace, to indicate to the user that the connection between thein-vehicle information system 200 and the mobile device 100 is stilloperational during the buffering. The indicator 538 may be displayedproximate to the application UI element corresponding to the bufferingapplication, rather than in the status region 530. Thus, in FIG. 5A, thebuffering indicator 538 is displayed with the media player UI element524.

FIG. 5B illustrates an alternate view 500 b of the default homescreen.Generally, it will be appreciated by those skilled in the art that thelayout of these homescreen views 500 a, 500 b as well as the other viewsillustrated herein may be varied while remaining within the scope of theembodiments described herein. FIG. 5B illustrates an example where thedock region 510 b has been repositioned, and the application UI elementarea 520 b now includes a further application UI element 528representing the phone function, which is therefore removed from thedock 510 b.

As stated above, the display of the homescreen view 500 a (or a variantof the homescreen view) is dependent on context information at themobile device 100 at the time the link application 230 is launched.Context information, generally, is obtained from at least the currentexecution state of each relevant application. In the example of FIG. 5A,this would include the map/navigation application 168, media player 170,and calendar application 160. In the example of FIG. 5B, this canfurther include the phone function, and optionally the contactsapplication 178.

FIG. 5C illustrates a further example in homescreen 500 c that may beimplemented with any variant of the homescreen, or with any other viewpresented on the display panel 206 mentioned herein. Select eventsdetected by the device 100 or the in-vehicle information system 200,such as calendar events, reminders, receipt of new messages, detectedenvironmental or operating conditions of the vehicle or changes thereto,and so on, can trigger a visual notification displayed on the displaypanel 206, for instance in the form of a “toast” or informationalnotification 540 that is temporarily displayed onscreen. Theinformational notification may be actuatable by the user, for instanceby a touch event, to invoke an application or further informationaldisplay relating to the substance of the notification 540. The contentof the notification 540 may comprise only an informational noticeindicating the type of event that has occurred, or may include some formof preview of the event; for example, where the event is receipt of anew message or the start of a calendar event, the notification 540 mayinclude content extracted from the body of the received message or asubject extracted from the calendar event. The appearance of thisnotification 540 may be subject to regulatory requirements, and it maybe configurable according to user preferences (e.g., its appearance maybe suppressed while the vehicle is in motion, suppressed altogether, orit may be configured to appear only for certain types of events).

In a simple embodiment, context information for an application isavailable when the application is currently executing on the device 100,and not available when the application is not currently executing. Thecontext information can include current execution state data for theapplication, such as the priority accorded by the device operatingsystem 140 to the executing application (e.g., whether it was executingin the foreground or the background, and/or whether its application UIview is currently displayed on the mobile device display 110); the lastapplication UI view displayed for the application on the mobile device100; and the current output state of the application. An application canbe considered to be actively updating output information or outputtingdynamic data when it is streaming or playing media or voice data (e.g.,when a media player is playing back an audio file, or the device 100 ishandling a voice call), or updating output data in response to detectedchanges to the device (e.g., updating navigation instructions and mapdata in response to detected changes to the mobile device's position).In this example, the current executing state and the current outputstate of each application determine (1) whether an operating contextexists at the mobile device 100 that is to be persisted to the UI viewsdisplayed by the in-vehicle information system 200; and (2) how theoperating context is to be persisted on the system display 206. Forexample, it may be determined that context for an application should bepersisted to the system 200 when the application was executing in theforeground and/or was outputting dynamic data at the time the link wasestablished.

Thus, if at the time the link is established between the system 200 andthe mobile device 100, one of the relevant applications on the mobiledevice (map/navigation application 168, media player 170, calendarapplication 160, phone/contacts application 178) is currently executingon the mobile device 100 in the foreground and its current output stateindicates that it is actively streaming or updating output data via oneor more output interfaces of the mobile device (e.g. playing an audiofile, displaying turn-by-turn navigation instructions based ondownloaded map and navigation data, or handling an ongoing voice call),then an application UI view for that application is automaticallypresented on the display panel 206 in place of the default homescreenview 500 a or 500 b, and the output data is automatically streamed tothe in-vehicle information system 200 for output using the vehicle'soutput subsystems (e.g., speakers and/or display panel 206).

If, at the time the link is established, an application is currentlyexecuting in the background and its current output state indicates thatit is actively playing or updating output data, then the homescreen viewmay be displayed provided the homescreen view is not pre-empted by anapplication UI view for another application. If the homescreen view isdisplayed, it is modified to provide a visual indication of the currentcontext of that application. The modification can comprise display of analternate application UI element for that application. Again, the outputdata may be automatically transmitted to the in-vehicle informationsystem 200 for output via the vehicle's output subsystems in place ofthe mobile device's output subsystems.

If the application was executing in the foreground and was onlypresenting static information (as opposed to “dynamic” data), then thereis no need to stream or transmit updated output data to the in-vehicleinformation system 200; however, because the application was executingin the foreground on the mobile device 100, in this example there iscontext information that can be presented in the homescreen view. If theapplication was executing in the background but was only presentingstatic information, or was not executing at all at the time the link isestablished, then in this example no context information is to bepersisted to the in-vehicle information system 200, and the linkcomponent 260 would therefore provide the system 200 with the defaultapplication UI element for the application in the homescreen view.

This is summarized in Table 1 below, and illustrated schematically inFIGS. 6A to 6D:

TABLE 1 Current Current Execution Output State State (Mobile) (Mobile)Output Response (Vehicle) foreground active bypass homescreen and showapplication UI for current output (for graphic output) show homescreenand indicate current application context (for audio output) transmitoutput data to vehicle for output via vehicle output subsystembackground active if homescreen not pre-empted, show homescreen andindicate current application context transmit output data to vehicle foroutput via vehicle output subsystem foreground static if homescreen notpre-empted, show homescreen and indicate current application contextbackground static if homescreen not pre-empted, show homescreen withdefault UI element for application not not if homescreen not pre-empted,show executing applicable homescreen with default UI element forapplication

The “current” execution state and output state in Table 1 reflects thestate of each application at the time the link program 230 is launchedor the link is established between the mobile device 100 and the system200, since as noted above, the link component 260 on the mobile devicemay launch any non-executing applications. The current execution stateand output state represent the most recent user-invoked context for theapplication on the mobile device 100; or in other words, the state inwhich the user had left the mobile device 100 at the time the link withthe in-vehicle information system 200 was established. If the user hadbeen playing music on the mobile device 100 at the time the link wasestablished, the relevant application context for the media player 170on the device 100 would be that the application was currently executing(in either the foreground or background), and actively outputting datato the user. As described above, this information may be collected bythe state module 256.

Using this context information, the link component 260 and/orapplication determines the form of UI view and application data that isto be delivered to the counterpart link application 230 for display bythe in-vehicle information system 200. FIG. 6A illustrates the first setof conditions in Table 1, in which an application is executing in theforeground and is actively outputting data to the user. It will be notedthat in the following figures, some UI elements depicted in FIGS. 5A and5B have been omitted for clarity of presentation. In this example, themap/navigation application 168 was executing in the foreground on themobile device 100 at the time the link was established, and was activelydisplaying turn-by-turn navigation instructions and map data to the userin an application UI view 600 a. Accordingly, it is determined that thehomescreen view should be bypassed, and an application UI view for themap/navigation application is provided to the in-vehicle informationsystem 200 for display.

In this example, the application UI view 610 a for the vehicle comprisesthe turn-by-turn navigation view, although as noted above, the viewconstructed for the vehicle display 206 can differ from the view of thesame data originally displayed on the mobile device 100. In addition, asthe map and navigation data is updated by the map/navigation application168 executing on the mobile device 100 in response to detected changesin the mobile device 100 location (e.g., using the GPS subsystem 123),the link component 260 obtains the map and navigation data received bythe map/navigation application 168, and sends this information inupdated UI views to the link application 230 for use in updating thedisplayed view on the vehicle. The operating context on the mobiledevice 100 is thereby persisted visually and functionally to thein-vehicle information system 200: at the time of the link, the mobiledevice 100 was displaying and updating navigation instructions and mapdata, and upon establishment of the link, the in-vehicle informationsystem 200 continues to display the same information. Accordingly, theoperating context of the mobile device 100 has not been lost as a resultof the integration with the system 200.

In a variant of this example, not illustrated, prior to the link beingestablished, the map/navigation application 168 may have been presentingnavigation instructions to the user for a first transport modality—forinstance, directions for travelling on foot, bicycle or by publictransit. Once the link is established and the application UI view isgenerated for the in-vehicle information system 200, the transportmodality for the map/navigation application 168 is automatically changedto driving, and the navigation instructions are switched to drivingdirections, since the mobile device 100 is now of course present in avehicle.

FIG. 6B illustrates the case where an application was executing in thebackground and was actively outputting data at the time the link wasestablished. This may be the case where the media player application 170was executing in the background and playing back an audio file, asmentioned above. The UI view 600 b illustrates a possible view thatcould have been displayed on the mobile device 100; given that the mediaplayer 170 was executing in the background, its corresponding UI viewwould not have been displayed on screen. In this case, a homescreen view610 b is generated and provided to the in-vehicle information system200. The homescreen view 610 b can include the standard set ofapplication UI elements 522, 526, 528; however, in this example, theapplication UI element corresponding to the media player application 170has been replaced with a modified UI element 604 that provides a visualindication of the operating context for the application 170: the element604 in this example includes graphics and text representing the audiofile currently being played back, as well as a further UI element thatmay be actuated to control the playback of the audio file. The functionsassociated with modified application UI elements are discussed belowwith reference to another embodiment.

At the same time, to preserve the operating context of the mobile device100, which was playing the audio file at the time the link wasestablished with the in-vehicle information system 200, the linkcomponent 260 can stream the audio data to the in-vehicle informationsystem 200 for output via the vehicle's speaker system.

FIG. 6C illustrates the case where an application was executing in theforeground at the time the link was established, but was merelydisplaying static data to the user, as shown in the example mobiledevice application UI view 600 c. In this example, the data presented bythe map/navigation application 168 comprises location details for aselected destination. Accordingly, there is no dynamic application datato stream to the in-vehicle information system 200 as in the case withthe executing media application 170. However, because the map/navigationapplication 168 was executing in the foreground, its operating contextis persisted to the in-vehicle information system 200 in the homescreenview 610 c by modifying the default homescreen view to include amodified map/navigation UI element 606 that provides a visual indicationof the operating context of the application on the mobile device 100.

FIG. 6D illustrates the case where an application was not executing atthe time the link was established. An example mobile device homescreenview 600 d is shown here, although many other views (including views ofanother application that was currently executing) may be shown instead.Since there is no operating context information to persist to thein-vehicle information system 200, the default homescreen view 610 d isprovided to the system 200.

It can be seen from the foregoing discussion that when a session betweenthe mobile device 100 and the in-vehicle information system 200 isinvoked, the relevant context of the mobile device 100 is automaticallypersisted in the graphical user interface displayed by the in-vehicleinformation system 200. It will be appreciated by those skilled in theart that the individual examples of FIGS. 6B through 6D can be combined;for instance, at the time the link was established between thein-vehicle information system 200 and the mobile device 100, themap/navigation application 168 may have been executing in the foregroundand displaying static data, while the media player 170 was executing inthe background and playing an audio file. In that case, the homescreenview may be modified to include a modified application UI element forboth the map/navigation and media player applications. Furthermore, ifthe mobile device 100 is capable of transmitting multiple data streams(e.g. updated map/navigation data and audio data), the examples of FIGS.6A and 6B may be combined. If the mobile device 100 is not capable ofconcurrently transmitting both types of data to the in-vehicleinformation system 200, then the data stream for thebackground-executing application could be terminated in favor of theforeground-executing application.

In a variant of this example, only certain classes or types ofapplications are accorded priority on the in-vehicle information systemdisplay panel 206 when they are executing in the foreground andoutputting dynamic data. For instance, if the media player application170 is executing in the foreground on the mobile device 100, asillustrated in mobile device view 600 e of FIG. 6E, and playing an audiofile when the link application 230 establishes a session with the mobiledevice, the mobile device 100 may stream the audio file to thein-vehicle information system 200 for playback, but will not pre-emptthe display of the homescreen view since a visual display is notnecessary for playback of the audio file. Instead, a modified homescreenview 610 e is displayed with a media player UI element 608 indicatingthe context of the media player application. On the other hand, if themap/navigation application 168 is executing in the foreground on themobile device 100 and displaying dynamic data at the time the session isestablished, the map/navigation UI screen would pre-empt the display ofthe homescreen view as shown in FIG. 6A, since the display screen 206 isrequired for presentation of map data.

FIG. 7 provides an overview of a method for persisting operating contextfrom the mobile device 100 to the in-vehicle information system 200 uponestablishment of a session between the device 100 and system 200 inaccordance with the rules of Table 1. At 700, a session is establishedas described above. For each selected application, at 710, adetermination is made of the application context at the mobile device100. This may be carried out by the link component 260 in conjunctionwith the state module 256. Next, it is determined at 720 whether theapplication is executing in the foreground. If this is the case, then at730 it is determined whether the application is currently streaming dataor otherwise outputting dynamic data. If the application is doing so,then at 740 the mobile device 100 generates an application UI viewreflecting the current operating context. This application UI view andthe application's dynamic data are provided to the in-vehicleinformation system 200 for output. (As noted above, this implementationmay apply only to the map/navigation application, or to thoseapplications that display their dynamic data.) If the application is notoutputting dynamic data, then at 750 the mobile device 100 generates ahomescreen view with an application UI element reflecting the currentoperating context, and provides this and the dynamic data to thein-vehicle information system 200. Returning to 720, if the applicationis not executing in the foreground but is determined to be outputtingdynamic data at 760, then the method returns to 750. If, however, theapplication is not outputting dynamic data and is not executing in theforeground, then no contextual information is included in theapplication UI elements generated by the mobile device 100 at 770.

In the foregoing simple embodiment, the application contexts on themobile device 100 as of the time of the user's last interaction with thedevice 100 are persisted in dependence on the current execution stateand the current output state of the application. However, consider thecase where the application is the calendar application 160; becausecalendar data is generally static and not dynamic, application contextwill not be persisted to the vehicle UI views in this embodiment unlessthe calendar application is executing in the foreground. The foregoingmodel for persisting context can accordingly be refined by alsoconsidering the availability of persisted data for each application onthe mobile device 100. Persisted data can include records of recentlyaccessed data or recent user activity within a defined time range, whichcan be maintained by the application or by the state module 256.Examples of recently accessed data includes “recently played” audiofiles by the media player 170, the last destination displayed using themap/navigation application 168, and a call log maintained by a phoneapplication. Persisted data can also include application data stored atthe device 100 and scheduled for action within a specified future timerange, such as upcoming calendar events (e.g. meetings, appointments)and tasks.

Thus, in this embodiment, the current executing state, the availabilityof persisted data for an application is also used to determine whetheran operating context exists at the mobile device that should bepersisted to the UI views displayed by the in-vehicle information system200. The operating context therefore includes the existence of persisteddata. As with the simple embodiment, it is generally presumed thatapplications outputting dynamic data (actively updated data) comprise anoperating context that should be persisted to the in-vehicle informationsystem display; in those cases, it is irrelevant whether persisted datais available. However, for all other cases, the existence of persisteddata determines whether there is an operating context that can bepersisted to the vehicle UI. If persisted data is available for theapplication, then this context can be visually indicated in theapplication UI elements in the homescreen provided to the in-vehicleinformation system 200; otherwise, only a default application UI elementis included in the homescreen view for that application. Table 2 belowsummarizes an example set of rules for determining what type ofapplication UI element is displayed:

TABLE 2 Current Current Execution Output Persisted State State Data(Mobile) (Mobile) (Mobile) Output Response (Vehicle) foreground activenot bypass homescreen and relevant display application UI for currentoutput (for graphic output) show homescreen and indicate currentapplication context (for audio output) transmit output data to vehiclefor output via vehicle output subsystem background active not ifhomescreen not pre-empted, relevant show homescreen and indicate currentapplication context transmit output data to vehicle for output viavehicle output subsystem foreground static available if homescreen notpre-empted, show homescreen and indicate persisted data contextforeground static unavailable if homescreen not pre-empted, showhomescreen with default UI element for application background staticavailable if homescreen not pre-empted, show homescreen and indicatepersisted data context background static not if homescreen notpre-empted, available show homescreen with default UI element forapplication not not available if homescreen not pre-empted, executingapplicable show homescreen and indicate persisted data context not notnot if homescreen not pre-empted, executing applicable available showhomescreen with default UI element for application

The addition of persisted data to the context information thereforeexpands the amount of context information that will be persisted to thevehicle display.

FIG. 8 provides an overview of a method for persisting operating contextfrom the mobile device 100 to the in-vehicle information system 200 uponestablishment of a session between the device 100 and system 200 inaccordance with the rules set out in Table 2. At 800, a session isestablished as described above. For each selected application, at 810, adetermination is made of the application context at the mobile device100. Again, this may be carried out by the link component 260 inconjunction with the state module 256. Next, it is determined at 820whether the application is currently streaming data or otherwiseoutputting dynamic data executing in the foreground. If this is thecase, then at 830 it is determined whether the application is executingin the foreground. If the application is doing so, then at 840 themobile device 100 generates an application UI view reflecting thecurrent operating context. This application UI view and theapplication's dynamic data are provided to the in-vehicle informationsystem 200 for output. (Once again, as noted above, this implementationmay apply only to the map/navigation application, or to thoseapplications that display their dynamic data.) If the application is notexecuting in the foreground, then at 850 the mobile device 100 generatesa homescreen view with an application UI element reflecting the currentoperating context, and provides this and the dynamic data to thein-vehicle information system 200.

Returning to 820, if the application is not outputting dynamic data butis determined to be associated with persisted data at 860, then at 870the mobile device 100 generates a homescreen view with an application UIelement reflecting the current operating context, and provides this tothe system 200. On the other hand, if there is no persisted data, thereis no contextual information to be visually indicated in the homescreen,and the default UI element is provided instead at 880.

The above rules determine whether visual contextual indicators should beprovided to the in-vehicle information system 200 for each of theselected applications. In addition to this, the operating context can beused to define the functionality of the application UI elements that areincluded in the various homescreen views provided to the system 200. Theinclusion of persisted data expands the possible range of functionalityof the application UI elements. In the foregoing examples, it can beseen that the homescreen view effectively provides a summary of thecontext executing on the mobile device 100 at the time of handoff, aswell as controls enabling the user to interact not only with thecurrently executing applications or applications with a currently activeoutput state as at the time of handoff, but also other applications thatwere not currently executing or having a currently active output at thetime of handoff.

FIG. 9 illustrates example context-specific application UI elements 900a, 900 b for use in the homescreen views displayed by the in-vehicleinformation system 200. Context-specific elements such as 900 a, 900 bvisually indicate the operating context of the application as determinedat the mobile device 100, and furthermore provide different access totheir associated application according to the type of operating contextdata available from the mobile device 100.

Element 900 a is a composite element including two portions, herereferred to as an “application” portion 910 and an “interaction” portion920 a. The application portion 910 can include a visual indicator of theoperational context determined for the application by the mobile device100. Optionally, the application portion 910 can include a caption orother indicia 915 providing additional information about the currentoperating state of the application. In this particular example, theelement 900 a is a modified application UI element for the media playerapplication, and the graphic in the application portion 910 depictsalbum cover art provided with an audio file. The application portion 910of the element 900 is also associated with a first application entrypoint (which can be a command or request string) for invoking afullscreen view of the related application. The specific applicationentry point associated with the application portion 910 may depend onthe specific context information available. In the absence of availablecontext information, the first application entry point may be associatedwith a default fullscreen view for the application, such that when theapplication portion 910 of the element 900 a is actuated, the defaultview of the corresponding application is invoked. Otherwise, ifinformation indicating the most recently displayed view of theapplication displayed at the mobile device 100 is available, the firstapplication entry point is associated with an application entry pointfor invoking that most recent view of the application.

The interaction portion 920 a is associated with a different applicationentry point, script or process which, when invoked, permits the user tointeract with the currently streaming/playing or persisted dataassociated with the application. In this example, element 900 arepresents the media player and, more specifically, a track that iscurrently being played. Interaction portion 920 a of the element 900 aincludes a visual indicator that the track is currently playing in theform of a “pause” button 925. Actuation of the interaction portion 920 ainvokes a process that issues a command to the media player to pauseplayback. As a result of this command, once playback is paused, theelement 900 a may be updated to the form shown as 900 b, where the pausebutton 925 has been changed to a “play” button 927 in the interactionportion 920 b; actuation of the interaction portion 920 b would thenfire a process that issues a command to the media player to resumeplayback, and the element 900 b may then be updated to resemble 900 aonce again. Thus, in this example, interaction comprises togglingplayback of the currently playing audio file between “play” and “pause”.In other examples that will be described below, the interaction portionmay be used to invoke different views of the associated applicationrelated to the persisted data, or to invoke other applications toprocess the persisted data.

By contrast, monolithic application UI elements such as 522 to 528illustrated in FIG. 5B are neither context-specific, since they do notinclude any visual indication of the operating context of theapplication, nor do they provide for interaction with persistent dataassociated with the application. The elements 522 to 528 of FIG. 5B,like conventional icons, are associated with a single application entrypoint. In response to actuation of the element, a default view of theassociated application is invoked.

As those skilled in the art will appreciate, the layout and arrangementof the elements 900 a, 900 b may be varied while remaining within thescope of this description. For instance, the two portions 910, 920 maybe displayed separately on the display panel 206. It is convenient,however, for the two portions to be adjacent or nearly adjacent toreduce the amount of time the user must spend studying the homescreen tolocate the desired element. As noted above the source of the relevantdata for generating these elements 900 a, 900 b and associating themwith the appropriate application function or view is the mobile device100.

FIGS. 10 to 17 illustrate specific examples of homescreen andapplication UI views providing the in-vehicle information system 200with access to mobile device applications and functions in accordancewith the principles discussed above. On launch of the link program 230at the in-vehicle information system 200, as described above, a sessionis initiated between the system 200 and the mobile device 100. Themobile device 100 determines the operating contexts for the variousselected applications (e.g., phone function, contacts application,map/navigation application, media player, and calendar) at approximatelythe time the link is established or the session is commenced, and usesthe determined operating contexts to generate the UI views for deliveryto the system 200.

Turning first to FIG. 10, a possible operating context of the mobiledevice 100 is illustrated by view 1000. In this example, themap/navigation application 168 is executing in the foreground of themobile device 100, and the current view 1000 comprises a display of acurrently selected destination. The data being presented by themap/navigation application 168 is thus static rather than dynamic, andthe persisted data associated with the application includes thecurrently selected destination (the selection of this destination is arecent user action, and the destination is the most recently vieweddestination). While in this context, the link is established between themobile device 100 and the system 200, and a session commenced. The linkcomponent 260 on the mobile device 100 therefore determines that thereis operating context information to be persisted to the in-vehicleinformation system 200 when access to the map/navigation application 168is provided via the display panel 206. An application UI element 1020 istherefore generated for the homescreen view 1010. The element 1020 caninclude an application portion 1022 that in this example is associatedwith an application entry point for a predetermined default view 1040 ofthe map/navigation application; in this case, a “follow-me” view, whichvisually tracks the location of the mobile device 100 as determined bythe GPS subsystem 123 or other location sensing component provided onthe mobile device 100. On actuation of the application portion 1022 ofthe element 1020 on the display panel 206, the default view 1040 isinvoked and replaces the homescreen view 1010 on the display panel 206.

The element 1020 also includes an interaction portion 1024, which inthis case is associated with an application entry point related to thepersisted data identified for the application—in this example, the mostrecently viewed destination as illustrated in the mobile device view1000. Actuation of the interaction portion 1024 of the element invokes adifferent view 1030 of the map/navigation application 168 for viewingthe location of the most recently viewed destination, without the userhaving to restart a search or lookup procedure for the destination oncethe in-vehicle information system 200 is linked to the mobile device100. The UI view 1010 displayed at the in-vehicle information system 200thus persists data from the operating context of the mobile device100—the state in which the user had left the mobile device at the timethe link with the system 200 was established—to the vehicle display.

FIG. 11 illustrates another possible operating state of the mobiledevice 100 in relation to the map/navigation application 168. In thisexample, the application is either executing in the background or notexecuting at all at the time the session with the in-vehicle informationsystem 200 is established, as represented by mobile device view 1100,which notionally represents a homescreen view from which applicationscan be launched. However, no persisted data is currently available forthe application (e.g., no recently viewed destinations). Accordingly,because there is no operating context data available for themap/navigation application in this case, the homescreen view 1110provided to the in-vehicle information system 200 comprises the defaultUI element 522 for the application. As explained above, the default UIelement 522 is associated with a default view of the map/navigationapplication 168, and is not context-specific. When the default UIelement 522 is invoked, the predetermined default application view 1130is invoked, which as in the example of FIG. 10 is the “follow-me” viewof the application 186.

FIGS. 12 to 14 illustrate examples of user interface elements related tothe media player application 170. Starting with FIG. 12, the mobiledevice 100 is currently executing the media player 170 either in theforeground or background (the view 1200 shown in FIG. 12 illustrates aforeground view comprising a track listing), and the media player 170 iscurrently playing an audio track. In this example, persisted data is notrelevant to the assessment of the operating context of the media player170. While the mobile device 100 is executing in this context, the linkis established between the device 100 and the system 200, and a sessioncommenced. The link component 260 determines that there is operatingcontext information to be persisted to the system 200. An application UIelement 1220 is therefore generated for a homescreen view 1210, theelement comprising an application portion 1222 and an interactionportion 1224. The application portion 1222 is associated with anapplication entry point for a fullscreen version of the media player170. In this example, the application entry point is for the mostrecently accessed view 1230 of the media player; in this case, as can beseen from the view 1200, a track listing view. Accordingly, in responseto actuation of the application portion 1222 of the element 1220, thetrack listing view 1230 of the media player 170 is invoked and displayedon the vehicle system display 206. The interaction portion 1224, likethe interaction portions described in FIG. 9, is associated with afunction that enables the user to interact with the currently playingtrack.

In FIG. 13, the mobile device 100 is not currently playing any mediafiles, but is currently executing in the foreground and displayingstatic data including recently played music in a mobile device view1300. The recently played music constitutes persisted data for the mediaplayer 170. Accordingly, the link component 260 would determine upon theestablishment of the session with the in-vehicle information system 200that there is application context information to be persisted to thevehicle UI view. Again, an application UI element 1320 having anapplication portion 1322 and an interaction portion 1324 is generated.The application portion 1322 is associated with an application entrypoint for the most recently accessed view 1330 of the media player,which will also comprise a listing of recently played music. Theinteraction portion 1324 in this case is associated with functions forinteracting with the persisted data: actuating the interaction portion1324 toggles between playback of tracks in the recently played musiclisting, and pausing playback.

FIG. 14 illustrates another case in which the media player is notexecuting at the time the session is established between the mobiledevice 100 and the in-vehicle information system 200, as depicted by thehomescreen view 1400 on the mobile device 100. Accordingly, the defaultapplication UI element 524 is displayed in the homescreen view 1410 forthe in-vehicle information system 200, and actuation of that element 524invokes a predetermined default view 1430 of the media player 170 fordisplay on the vehicle display panel 206, since there is no mostrecently accessed view information in this case for the media player170.

FIGS. 15 to 17 illustrate implementation examples with the calendarapplication 160. Given that calendar data tends to be static rather thandynamic, these examples rely heavily on persisted data being availableon the mobile device 100 to provide context in the vehicle homescreenviews. As a first example, illustrated in FIG. 15, consider that ameeting or other calendar event is either occurring at the present time,or else coming up within a fixed time period (e.g., within the next 12hours, or during the current day). Upcoming events are typically trackedon the mobile device 100 in a background process, even when the calendarapplication has not be explicitly launched on the mobile device 100 bythe user; accordingly, the mobile device view 1500 in FIGS. 15 to 17 issimply illustrated as the mobile device homescreen, and it is assumedthat the persisted data, rather than the actual execution state of thecalendar application, will be determinative of how context will bepersisted to the vehicle UI.

In this example, then, there is persisted data that can be reflected inthe homescreen view 1510 by the in-vehicle information system 200.Accordingly, a composite UI element 1520 is generated, comprising anapplication portion 1522 and an interaction portion 1524. Theapplication portion 1522 can include information relating to thepersisted data (e.g., a description of the next upcoming meeting), andis associated with application entry point for a predetermined defaultview 1530 for the calendar application. In this case, the predetermineddefault view 1530 is an agenda view, which is populated with upcomingevents scheduled over a defined period (e.g., over the next 12 or 24hours, or for the current day). The interaction portion 1524 of the UIelement 1520 is associated with the most imminent persisted dataprovided by the calendar application, and actuation of the interactionportion 1524 can invoke a corresponding application according to thetype of persisted data available. For instance, in FIG. 15, the mostimminent persisted data item is a calendar event for which a locationwas defined. The link component 260, in constructing the UI element1520, may retrieve the location data from the calendar event andgenerate an application entry point or string comprising the location asinput for the map/navigation application 168. Therefore, when theinteraction portion 1524 is invoked on the vehicle display 206, adestination view 1540 of the map/navigation application 168 isautomatically invoked, showing the location of the calendar event, anddisplayed on the display panel 206.

FIG. 16 illustrates a variation of the example of FIG. 15, where thecalendar event is a conference call and therefore does not include ageographic location, but rather a telephone number. Accordingly, thecomposite UI element 1620 in the vehicle homescreen view 1600 includesthe application portion 1622, which operates in substantially the samemanner as the application portion 1522 of FIG. 15, and invokes theagenda view 1630 of the calendar application on the vehicle display 206when actuated. However, the interaction portion 1624 is now associatedwith an entry point or string comprising the telephone number retrievedfrom the calendar event as input for the phone application on the mobiledevice 100. Thus, actuation of the interaction portion 1624 will invokea phone application view 1640 and automatically dial the telephonenumber so that the user can easily join in the conference call.

FIG. 17 illustrates a case where there are no calendar events availablefor the upcoming fixed period, and so there is no currently availablepersisted data to be associated with the application UI element 1720 tobe displayed in the vehicle homescreen view 1700. In this case, thedefault UI element may be adapted to reflect this information, as shownin the UI element 1720. The UI element 1720 is simply associated with asingle application entry point for invoking the default view 1740 of thecalendar application on the vehicle display 206.

It will be appreciated by those skilled in the art that similaradaptations may be made for other application UI elements that can bedisplayed on the vehicle homescreen view. For instance, for aphone/contacts application, persisted data such as a log of recentcallers, or most frequently called contacts, may be used to providecontextual information for the UI elements displayed on the vehicledisplay for invoking the phone or contacts application.

The foregoing examples illustrate the use of one or more of a mobiledevice application's current executing state, current output state, andpersisted data to provide continuity of user experience when operationof the mobile device 100 transitions from the mobile device 100 to anin-vehicle information system 200. The continuity of user experience isobtained by storing, then propagating, the application's operatingcontext on the mobile device 100 to the in-vehicle information systemdisplay panel 206. The propagation can occur for all applications at thetime a link is established between the device 100 and the system 200, asgenerally described in the foregoing examples; however, it can alsooccur on an application-by-application basis as each application isaccessed or launched on the system 200. Thus, although certain aspectsof the mobile device UI views (e.g., the orientation, layout, etc.) aremodified in order to suit the in-vehicle environment, important aspectsof the mobile user interface—such as the “most recently viewed”application view, persisted data, currently displayed maps and currentlyplaying media files—are persisted even after the connection to thein-vehicle information system 200 is made. By providing the linkcomponent 260 on the mobile device 100, and configuring the mobiledevice 100 to persist and propagate context information to thein-vehicle information system 200, it is not necessary for the contextinformation or application state information, generally, to be stored ata third-party component, such as a remote server accessible overwireless connections by both the mobile device 100 and the system 200.However, it will be appreciated by those skilled in the art that afurther embodiment may be implemented where the link component 260functions may be provided on a remote server or other device, whichtherefore mediates communications between the system 200 and theapplications executing on the mobile device 100.

Conversely, when the session between the in-vehicle information system200 and the mobile device 100 ends, the state of the system 200 can bepersisted on the mobile device 100 so that the mobile deviceapplications corresponding to the current operating context of thesystem 200 can resume execution on the mobile device 100 in a mannerconsistent with the in-vehicle information system context at the timethe link between the system and the device 100 was severed. FIG. 18illustrates an example method of propagating application context betweenthe mobile device 200 and the in-vehicle information system 200environments. Starting at 1800, it is determined that applicationcontext is to be propagated from one UI environment to another. In thecase where a session is being established, as described above, thecurrent application context of the mobile device—which includes thecurrent UI and output state of the mobile device—is to be transferred tothe in-vehicle information system 200 and presented in a UI at thesystem 200. In the case where a session is being terminated, the contextrepresented by the UI presented by the system 200 must be transferredback to the UI environment presented by the mobile device 100. At 1810,for each qualifying application, an application context is determined inthe initial UI environment, and the application context data is storedat 1820 by the state module 256. Only a predetermined set ofapplications present on the mobile device 100 may be made accessible viathe in-vehicle information system 200; thus, if another application thatis not part of this subset is currently executing on the mobile device100, its context need not be preserved for the purpose of propagation tothe in-vehicle information system 200 UI, although its context or otherstate information may certainly be stored by the mobile device 100. Aqualifying application may be an application that is part of thispredetermined set, or an application that is configured to provide UIscreens that are adapted for presentation via the in-vehicle informationsystem 200.

At 1830, it is determined from the context data whether the applicationis in focus, or executing in the foreground with a UI screen beingdisplayed in the initial UI environment. If this is the case, whencontext is transferred to the other UI environment, the current UIscreen is closed or minimized since an application should be in focus inone environment at a time; accordingly, at 1840, the application UIscreen in the initial UI environment (whether this is the vehicle or themobile device) is minimized, i.e., removed from focus. “Minimizing” mayinclude demoting the application to a background process, reducing theapplication screen to a tile in a multitasking screen, or hiding theapplication screen altogether. Finally, at 1850, the context of theapplication is propagated to the second UI environment, as generallydescribed above. The different rules and examples discussed above may beapplied when context is transferred from the mobile device UI to thein-vehicle information system UI, and also as appropriate when contextis transferred from the in-vehicle information system UI to the mobiledevice UI. For example, when a given application is executing in theforeground and is in focus in the vehicle UI environment, on terminationof the link session between the in-vehicle information system 200 andthe mobile device 100, the application UI presented in the vehicle isminimized, and application generates a view for presentation on themobile device, and continues to execute in the foreground on the mobiledevice with its screen in focus. Put another way, on termination of thesession, a currently active application alters its output screen toadapt to the mobile device display 110. As another example, when anapplication is executing in the background and actively outputting databut is not in focus at the in-vehicle information system 200 when thesession is terminated, the application UI presented in the vehicle maynot need to be changed since it is not in focus; however, on terminationof the session, the application continues to execute in the backgroundbut redirects its output data to a local subsystem provided on themobile device 100. If the application is executing in the background butits current output state is static, or if the application is notexecuting at all, then on termination of the session there may be nochange to the application's UI state.

FIG. 19 details this procedure where an application is activelyoutputting data, as in the case of streaming music. Upon receipt of aninstruction to terminate an ongoing session 1900 (which may be receivedat either the in-vehicle information system 200 or the mobile device100), the current operating context for each of the selectedapplications is assessed at 1910 in a manner similar to that describedabove. The operating context data can then be stored at the mobiledevice 100 at 1920. The assessment of the operating context for eachapplication can be carried out by the link component 260 and/or thestate module 256 in a similar manner to that described above. Anyongoing data streams being transmitted from the mobile device 100 to thesystem 200 are terminated at 1930, and output resumes via normal mobiledevice 100 I/O subsystems. In the case of a voice call using thevehicle's I/O subsystems that was ongoing at the time the session wasterminated, in addition to terminating the streaming, the mobile device100 may automatically place the call on hold, and optionally issue anaudible notification to remind the user to resume the call. Finally, at1940 the mobile device 100 re-invokes the various applications that wereexecuting at the time the session was terminated and applies the storedcontext information to return the applications to the same state theywere in at the time of termination at 1900.

As mentioned above, in the case of the map/navigation application 168,the initial transport modality used in turn-by-turn navigation on themobile device 100 may be walking, bicycling, or public transit (i.e., amode of transport other than driving a motor vehicle). Upon initiatingthe link with the vehicle, the modality could be automatically switchedto driving. Thus, while the context on the mobile device 100 isgenerally preserved (the current display of the turn-by-turn navigationview is persisted to the vehicle information system 200), additionalcontext from the vehicle is combined with the original mobile devicecontext. Conversely, when the link with the vehicle is terminated, ifthe turn-by-turn navigation feature is currently being displayed by thein-vehicle information system 200, the turn-by-turn navigation contextcan be persisted to the mobile device 100, but in addition, the mode oftransport is automatically changed to walking or public transit toreflect the fact that the user has exited a vehicle.

In some implementations, the security manager 258 on the mobile device100 operates to restrict the types of data that are output to thein-vehicle information system 200. For instance, if the link between thesystem 200 and the mobile device 100 is established while the mobiledevice 100 is operating under the user's “personal” or non-sensitiveprofile, access to sensitive data and/or applications is restricted bythe security manager 258. Thus, for instance, media data may be streamedwithout restriction to the in-vehicle information system 200 because themedia data is not assigned to the “sensitive” data category, butwork-related calendar data, which is designated as “sensitive”, isrestricted by the security manager 258 and is not included in thepersisted data that is used by the link component 260 to generate userinterface data and elements for provision to the in-vehicle informationsystem 200.

There is accordingly provided a method, comprising: a mobile deviceproviding, to an in-vehicle information system, access to an applicationexecuting on the mobile device, the in-vehicle information systemproviding user interface access to the application on a display screenof the in-vehicle information system while the application is executingon the mobile device; when the access is terminated, the mobile devicedetermining an current execution state of the application; and resumingexecution of the application at the mobile device from the currentexecution state, the application defining a user interface view forpresentation on a display screen of the mobile device, the userinterface view representing the current execution state.

In one aspect, the application is a navigation application; the currentexecution state comprises a presentation of navigation information for adefined destination; the user interface access provided by thein-vehicle information system comprises presentation of the navigationinformation according to a first transport mode; and the user interfaceview comprises presentation of the navigation information according to asecond transport mode.

In another aspect, the first transport mode comprises driving, and thesecond transport mode comprises one of walking, public transit, andbicycling.

In still another aspect, the user interface access provided by thein-vehicle information system comprises a current view generated by theapplication and transmitted to the in-vehicle information system.

Still further, the current execution state may comprise media streamingfrom the mobile device.

In yet another aspect, the method initially comprises: the applicationpresenting, on the display screen of the mobile device, an initial userinterface view; initiating the provision of access by the in-vehicleinformation system to the in-vehicle information system; when theprovision of access is initiated, determining an initial currentexecution state of the application; the application generating a furtheruser interface view for providing user interface access to theapplication; and the mobile device transmitting the further userinterface view to the in-vehicle information system for display.

There is further provided a method, comprising: executing a navigationapplication, the navigation application providing a first user interfacefor presentation on a display of the first device, the first userinterface comprising navigation information according to a firsttransport mode associated with the first device; on determination that apresentation of the navigation information is to be transferred to asecond device, determining current execution state data for thenavigation application; and the navigation application executing toprovide a second user interface for presentation on a display of thesecond device, the second user interface comprising navigationinformation according to the current execution state data and a secondtransport mode associated with the second device.

In one aspect, the first device is either a mobile device or anin-vehicle information system, and the second device is the other one ofthe mobile device and in-vehicle information system.

In another aspect, the first device is a mobile device, and the firsttransport mode comprises one of walking, public transit, and bicycling;and the second device is an in-vehicle information system, and thesecond transport mode comprises driving.

Still further, the determination that the presentation of the navigationinformation is to be transferred to the second device may compriseestablishment of a communication session between the first device andthe second device.

In a further aspect, the first device is an in-vehicle informationsystem, and the first transport mode comprises driving; and the seconddevice is a mobile device, and the second transport mode comprises oneof walking, public transit, and bicycling.

In still a further aspect, the determination that the presentation ofthe navigation information is to be transferred to the second devicecomprises a termination of a communication session between the firstdevice and the second device.

There is also provided a mobile device, which can include a displayscreen; a communications subsystem adapted for communication with anin-vehicle information system; and at least one processor, the mobiledevice and its components thus being configured to enable the featuresof the above-described methods.

There is further provided a system, which can include theabove-described mobile device and an in-vehicle information system,adapted to enable the features of the above-described methods.

There is also provided a data-bearing medium, which may be a physical ornon-transitory medium, bearing or storing code which, when executed by asuitable processor or processors of a device, causes the device toimplement any of the above described methods and variations.

It should be understood that steps and the order of the steps in theprocessing described herein may be altered, modified and/or augmentedand still achieve the desired outcome. Throughout the specification,terms such as “may” and “can” are used interchangeably and use of anyparticular term should not be construed as limiting the scope orrequiring experimentation to implement the claimed subject matter orembodiments described herein. Further, the various features andadaptations described in respect of one example or embodiment in thisdisclosure can be used with other examples or embodiments describedherein, as would be understood by the person skilled in the art.

The systems' and methods' data may be stored in one or more data stores.The data stores can be of many different types of storage devices andprogramming constructs, such as RAM, ROM, flash memory, programming datastructures, programming variables, etc. It is noted that data structuresdescribe formats for use in organizing and storing data in databases,programs, memory, or other computer-readable media for use by a computerprogram.

Code adapted to provide the systems and methods described above may beprovided on many different types of computer-readable media includingcomputer storage mechanisms (e.g., CD-ROM, diskette, RAM, flash memory,computer's hard drive, etc.) that contain instructions for use inexecution by a processor to perform the methods' operations andimplement the systems described herein.

The computer components, software modules, functions and data structuresdescribed herein may be connected directly or indirectly to each otherin order to allow the flow of data needed for their operations. Variousfunctional units described herein have been expressly or implicitlydescribed as modules and agents, in order to more particularly emphasizetheir independent implementation and operation. It is also noted that anagent, module or processor includes but is not limited to a unit of codethat performs a software operation, and can be implemented for exampleas a subroutine unit of code, or as a software function unit of code, oras an object (as in an object-oriented paradigm), or as an applet, or ina computer script language, or as another type of computer code. Thevarious functional units may be implemented in hardware circuits such ascustom VLSI circuits or gate arrays; field-programmable gate arrays;programmable array logic; programmable logic devices; commerciallyavailable logic chips, transistors, and other such components. Modulesimplemented as software for execution by a processor or processors maycomprise one or more physical or logical blocks of code that may beorganized as one or more of objects, procedures, or functions. Themodules need not be physically located together, but may comprise codestored in different locations, such as over several memory devices,capable of being logically joined for execution. Modules may also beimplemented as combinations of software and hardware, such as aprocessor operating on a set of operational data or instructions.

A portion of the disclosure of this patent document contains materialwhich is or may be subject to one or more of copyright, design patent,industrial design, or unregistered design protection. The rights holderhas no objection to the reproduction of any such material as portrayedherein through facsimile reproduction of the patent document or patentdisclosure, as it appears in the Patent and Trademark Office patent fileor records, but otherwise reserves all rights whatsoever.

The invention claimed is:
 1. A method, comprising: a mobile deviceproviding, to an in-vehicle information system, access to a navigationapplication executing on the mobile device, the in-vehicle informationsystem providing user interface access to the navigation application ona display screen of the in-vehicle information system while thenavigation application is executing on the mobile device, the userinterface access comprising presentation of navigation information fornavigating to a defined destination using a first transport mode;determining, by the mobile device, that a link with the in-vehicleinformation system has been terminated such that communication betweenthe mobile device and the in-vehicle information system is terminated,and, in response: the mobile device determining a current executionstate of the navigation application, the current execution statecomprising a presentation of navigation information for the defineddestination; and resuming execution of the navigation application at themobile device from the current execution state, the navigationapplication defining a user interface view for presentation on a displayscreen of the mobile device, the user interface view representing thecurrent execution state, wherein resuming execution comprises presentingthe navigation information according to a second transport mode.
 2. Themethod of claim 1, wherein the first transport mode comprises driving,and the second transport mode comprises one of walking, public transit,and bicycling.
 3. The method of claim 1, wherein the user interfaceaccess provided by the in-vehicle information system comprises a currentview generated by the navigation application and transmitted to thein-vehicle information system.
 4. The method of claim 1, wherein currentexecution state comprises media streaming from the mobile device.
 5. Themethod of claim 1, initially comprising: the navigation applicationpresenting, on the display screen of the mobile device, an initial userinterface view; initiating the provision of access by the in-vehicleinformation system to the in-vehicle information system; when theprovision of access is initiated, determining an initial currentexecution state of the navigation application; the navigationapplication generating a further user interface view for providing userinterface access to the navigation application; and the mobile devicetransmitting the further user interface view to the in-vehicleinformation system for display.
 6. A method, comprising: executing anavigation application, the navigation application providing a firstuser interface for presentation on a display of the first device, thefirst user interface comprising navigation information according to afirst transport mode associated with the first device; and ondetermination that a link with the first device has been terminated suchthat communication between a second device and the first device isterminated: determining current execution state data for the navigationapplication; and the navigation application executing to provide asecond user interface for presentation on a display of the seconddevice, the second user interface comprising navigation informationaccording to the current execution state data and a second transportmode associated with the second device.
 7. The method of claim 6,wherein the first device is either a mobile device or an in-vehicleinformation system, and the second device is the other one of the mobiledevice and in-vehicle information system.
 8. The method of claim 6,wherein the first device is a mobile device, and the first transportmode comprises one of walking, public transit, and bicycling; and thesecond device is an in-vehicle information system, and the secondtransport mode comprises driving.
 9. The method of claim 6, wherein thefirst device is an in-vehicle information system, and the firsttransport mode comprises driving; and the second device is a mobiledevice, and the second transport mode comprises one of walking, publictransit, and bicycling.
 10. The method of claim 9, wherein thedetermination that a link with the first device has been terminatedcomprises a termination of a communication session between the firstdevice and the second device.
 11. A mobile device, including: a displayscreen; a communications subsystem adapted for communication with anin-vehicle information system; and a processor configured to enable:providing, to the in-vehicle information system using the communicationssubsystem, access to a navigation application executing on the mobiledevice, the in-vehicle information system providing user interfaceaccess to the navigation application on a display screen of thein-vehicle information system while the navigation application isexecuting on the mobile device, the user interface access comprisingpresentation of navigation information for navigating to a defineddestination using a first transport mode; determining that a link withthe in-vehicle information system has been terminated such thatcommunication between the mobile device and the in-vehicle informationsystem is terminated, and, in response: determining a current executionstate of the navigation application; and resuming execution of thenavigation application from the current execution state, the navigationapplication defining a user interface view for presentation on thedisplay screen of the mobile device, the user interface viewrepresenting the current execution state, wherein resuming executioncomprises presenting the navigation information according to a secondtransport mode.
 12. The mobile device of claim 11, wherein the firsttransport mode comprises driving, and the second transport modecomprises one of walking, public transit, and bicycling.
 13. The mobiledevice of claim 11, wherein the user interface access provided by thein-vehicle information system comprises a current view generated by thenavigation application and transmitted to the in-vehicle informationsystem.
 14. The mobile device of claim 11, wherein current executionstate comprises media streaming from the mobile device.
 15. The mobiledevice of claim 11, wherein the processor is further configured toinitially enable: the navigation application presenting, on the displayscreen of the mobile device, an initial user interface view; initiatingthe provision of access by the in-vehicle information system to thein-vehicle information system; when the provision of access isinitiated, determining an initial current execution state of thenavigation application; the navigation application generating a furtheruser interface view for providing user interface access to thenavigation application; and the mobile device transmitting the furtheruser interface view to the in-vehicle information system for display.16. A mobile device, including: a display screen; a communicationssubsystem; and a processor configured to enable: executing a navigationapplication, the navigation application providing a first user interfacefor presentation on a display of a first device, the first userinterface comprising navigation information according to a firsttransport mode associated with the first device; and on determination alink with the first device has been terminated such that communicationbetween the mobile device and the first device is terminated:determining current execution state data for the navigation application;and providing a second user interface for the navigation application forpresentation on a display of the mobile device, the second userinterface comprising navigation information according to the currentexecution state data and a second transport mode associated with themobile device.
 17. The mobile device of claim 16, wherein the firstdevice is either the mobile device or an in-vehicle information system,and the mobile device is the other one of the mobile device andin-vehicle information system.
 18. The mobile device of claim 16,wherein the first device is the mobile device, and the first transportmode comprises one of walking, public transit, and bicycling; and themobile device is an in-vehicle information system, and the secondtransport mode comprises driving.
 19. The mobile device of claim 16,wherein the first device is an in-vehicle information system, and thefirst transport mode comprises driving; and the second transport modecomprises one of walking, public transit, and bicycling.
 20. The methodof claim 19, wherein the determination that a link with the first devicehas been terminated comprises a termination of a communication sessionbetween the first device and the mobile device.